23

» WarCraft 3 / Проблемы с анимациями

Похожие вопросы:

ответ
nvc123:
Nyanta, для начала дебаг сделать как написано в статье
Сделал. Триггер работает как нужно. При входе всегда пишет "Вход!", при выходе - "Выход!". Порядок текста не меняется.
В общем, проблема, почему-то, была в названии анимации. Открыл модель через MdlVis и назвал анимации "родными" словами Stand, Walk, Death. Стало работать как надо.
Спасибо Rare за
Rare:
ставь скорость анимации на 0%
И nvc123 за то, что натолкнул на мысль этим)
nvc123:
конфликт триггеров,неправильный проигрыш анимаций
ответ
Анимация кости базы при death сместилась у конечной точки в линейке анимации. Поправил. В игре потестил, работает. Рассчитать границы нужны когда делаешь новые или изменяешь старые анимации, одна из причин чтоб анимация не сместилась и была на своем месте. Но в твоем случае она сразу не помогла.
ответ
скорее всего связано с кешированием данных, попробуй первым на карту занружать юнитов, и только потом декорации
ответ
XGM Bot:
Похожие вопросы:

ответ
nvc123:
Nyanta, для начала дебаг сделать как написано в статье
Сделал. Триггер работает как нужно. При входе всегда пишет "Вход!", при выходе - "Выход!". Порядок текста не меняется.
В общем, проблема, почему-то, была в названии анимации. Открыл модель через MdlVis и назвал анимации "родными" словами Stand, Walk, Death. Стало работать как надо.
Спасибо Rare за
Rare:
ставь скорость анимации на 0%
И nvc123 за то, что натолкнул на мысль этим)
nvc123:
конфликт триггеров,неправильный проигрыш анимаций
ответ
Ошибка при работе с MdlVis. Попробуй открыть модель в версии 1.40, там должно изменение видимости в ключевых кадрах должно заработать. Однако советую сделать копию модели, т.к. 1.40, если не изменяет память, ломает уже настроенную видимость.
ответ
Лучше проверить, присоединён ли он к тем же костям, что и соседние вершины. Если нет — присоединить. Если да, то как сказали Melissa и nvc123.
ответ
Анимация кости базы при death сместилась у конечной точки в линейке анимации. Поправил. В игре потестил, работает. Рассчитать границы нужны когда делаешь новые или изменяешь старые анимации, одна из причин чтоб анимация не сместилась и была на своем месте. Но в твоем случае она сразу не помогла.
ответ
скорее всего связано с кешированием данных, попробуй первым на карту занружать юнитов, и только потом декорации

ответ
8gabriel8:
Вроде ему наоборот надо Spell Throw -> Attack.
с Attack на Spell Throw

zetreisu, открываете модель в mdlvis жмакаете F3, выбераете нужную анимацию, переименовываете, жмакаете Enter и сохраняете модель при выходе.

23

» WarCraft 3 / Не работает триггер (исследование)

Похожие вопросы:

ответ
Filius Dei:
я так и не понял почему ты не можешь просто сделать как улучшение что не так с улучшением как в обычном случае.
дело в описании, вот и не могу так сделать,если сделать через улучшение здания, то при наведении на иконку вплывает подсказка, та же подсказка что будет и у самого здания в списке построек у светлячка, тоесть если делать через улучшение (по идее этот же юнит должен быть и в списке построек (а он там есть) ту подсказку которую я хочу будет лишней. вот пример: Древо жизни превращается в древо мира, при этом все союзные юниты вблизи древа получают повышеную регенерацию здоровья. (а теперь представь что эта подсказка будет в списке построек у светлячка, вообще не то)
Решил проблему путем выбора древа когда истекает однократный таймер, также подумал и решил что наверно лучше делать через способности, а не исследования. Но у меня остался один вопрос, если этот тригер отвечающий за применения этих способностей будет использовать несколько игроков, я не знаю будет ли использоватся оно коректно или нет, также и с отдельным триггером Таймер. Вот что вышло в данный момент:
ответ
Событие: Юнит завершает исследование.

23

» WarCraft 3 / Помогите найти карту

Принятый ответ
Похожие вопросы:

ответ
Увы но нет... Главная особенность той карты что все герои открываются по мере накопления очков за игру на карте, они не открыты сразу и не походу первой катки открываются а лишь с накоплением общих баллов. Я весь мозг сломал уже, в попытках вспомнить. Эх...
ответ
не карта, но есть подозрение, что это оно
ответ
По описанию похожа на Necris.
ответ
konvan5:
Может это "Тьма против живых"?
Вот глянь по видео, оно ли

Карта уже не слабо развилась, может отличаться от того, что ты помнишь новыми локациями и возможностями.
Да оно спасибо большое

23

» WarCraft 3 / Не работает озвучка юнита

Похожие вопросы:

ответ
Установить локально для нужного игрока альтернативную иконку (прозрачную), а так же самое здание или сделать его невидимым.
ответ
8gabriel8:
Я пробовал через все форматы
Простите, но значения точно такие у меня. Не получилось
Да ещё я был ооочень далек от пк и озвучки, я не мог отправить данные.
Ты чувствуешь непоследовательность в своих комментариях? Что пробовал кучу форматов, а значит мог банально перепутать какие-то параметры, но уверен, что параметры именно такие, как указал, при этом ооочень далек от ПК, чтобы ещё раз перепроверить себя.
Я только 10 мин назад проверил, и посмотрел, точно так сделал как сказали (кроме таблицы) не работают, теперь сам сделаю по своему.
А потом ещё:
Не суди строго :)
И минус влепил Hate!
Я просто попросил, ничего обидного нет, с правильной точки зрения.
За идиотов нас здесь считаешь? Пришёл сюда к идиотам с вопросами.
Я никого не считаю идиотом, и даже сам попросил не судить строго, чтоб какой-то РЕАЛЬНЫЙ ИДИОТ не жаловался мне! Я создаю свои карты и мне нужны св-ва и данные для улучшения .
Может быть ты и есть идиот поскольку считаешь что я думаю плохое о других, но не остальные.
Читал, что в архиве war3patch.mpq файл UI\SoundInfo\UnitsAckSounds.slk надо взять и добавить в него новые сеты озвучки.
Спасибо тема закрыта.

23

» WarCraft 3 / Warcraft 3 1.31

Похожие вопросы:

ответ
Держите, с поддержкой любых патчей
ответ
Включить локальные файлы и кинуть ролики в <корневая папка игры>\Movies.
ИЛИ
Попробовать кинуть ролики в <документы пользователя>\WarCraft III\Movies.
Как включить локальные файлы
ответ
Программой CascView www.zezula.net/en/casc/main.html
ответ
XGM Bot:
Похожие вопросы:

ответ
Бэкапы надо было делать, мсье. Перед внесением каких-либо серьезных изменений.
ответ
Проблема решена.
ответ
Вообщем перенастроил Jass New Gen Pack карта как то по другому сохранилась с проверками и всё наладилось)


23

» WarCraft 3 / Система Спавнов

Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Ну для блока урона нужно вручать абилку на 100500 хп, лечить юнита, ну а только потом, с помощью таймера на 0.00 сек. убирать абилку и ставить хп сколько было до всего этого дела.
Могу дать свою карту, там есть и детект физ урона без мемхака и блок урона и снижение урона.
ответ
Slashur, вы даете
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 0)
изменяете на
call CreateUnitAtLoc(GetTriggerPlayer(), udg_ItemID, udg_temp_point, 270)
всего 1 строчку. всего 1 аргумент. с нуля на 270 поменял и все. стандартное ориентация зданий = 270 град, записана в переменную.
хотел чтобы вы сами помучались. пробуй брать гуи,конвентировать в код. сравнивали. пример
статьи читали бы.
ответ
Все не то. Нужна группа юнитов. При смерти юнита узнается к какой группе он принадлежал (через ХТ или структуру). Юнит удаляется из группы. Если после этого группа остается пуста - запускать таймер респавна с коллбэком. Фсе. Никаких "посмотри как в доте", просто здравый смысл.
В коллбеке же запускать рандомно одну из функций создающую стак, передавать в нее ссылку на группу и записывать в эту группу созданных юников.
ответ
quq_CCCP, у меня крипы спавнятся не из одной точки. Крипы спавнятся в лагерях. В каждом лагере есть несколько точек спавна. При каждом спавне выбирается рандомная точка спавна из рандомного лагеря. Так что с реалистичностью у меня нет проблем.




        local data = {}

        for _, value in pairs(Creep) do
            if type(value) == "table" and value.round ~= nil then
                if data[value.round] == nil then
                    data[value.round] = {}
                end

                table.insert( data[value.round], value )
            end
        end

        for key, value in pairs(data) do
            local i = math.random(1, #value)

            name        [key] = value[i].name
            stylizedName[key] = value[i].stylizedName
            tip         [key] = value[i].tip
            prepare     [key] = value[i].prepare
            count       [key] = value[i].count
            limit       [key] = value[i].limit
            spawnCamp   [key] = value[i].spawnCamp
            startSound  [key] = value[i].startSound
            endSound    [key] = value[i].endSound
            pool        [key] = value[i].pool

            BJDebugMsg('Round ' .. key .. ': ' ..name[key])
        end

23

» WarCraft 3 / Типы юнитов

Похожие вопросы:

ответ
Вопрос в том, что мне делать с ней при каждом новом присвоении.
Ничего
я не могу понять, глобальная она или локальная
Почитайте про локальные переменные. Статьи тоже будут полезны.
Не знаю, не понимаю, что лучше, или оба, но в какой последовательности?
Я тоже ничего не понимаю, когда не вижу кода.
ответ
SirDragdord:
Да, только это. У меня карта - арена и не хочется, чтобы юниты спавнились на трибунах или за воротами. А призвать нужно 3 типа юнита.
Берёшь точку под героем, и поляркой создаёшь три точки рядом (либо одну, если это будет удобно).
Типа так
set Type[1] = 'u001'
set Type[2] = 'u002'
set Type[3] = 'u003'
set P1 = позиция кастера
Цикл А от 1 до 3
set P2 = Полярка от P1 на дистанции 40. под углом ( А * 120. )
Боевая единица - Создать 1 юнита типа Type[A] в позиции P2
очистку и удаление точек - по желанию...
Типа как у стандартных призывов
set P1 = позиция кастера
set P2 = Полярка от P1 на дистанции 200. под углом поворота кастера
Боевая единица - Создать 1 юнита типа 'u001' в позиции P2
Боевая единица - Создать 1 юнита типа 'u002' в позиции P2
Боевая единица - Создать 1 юнита типа 'u003' в позиции P2
ответ
Eternal soul,
Способ что предложил я - вы формируете БД и далее циклом пробегаетесь по массиву unit_type_string[i] и сравниваете его с вашей строкой. Если сравнение прошло успешно то по индексу unit_type[i] находите нужного юнита. Конечно конвертировать было бы более проффесионально, но это способ тоже будет работать.
ответ
Вручил шит пехотинца и скрыл.
И ловите приказ я уже выкладывались где то

23

» WarCraft 3 / Как определить главную характеристику героя?

Похожие вопросы:

ответ
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение
8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)

23

» WarCraft 3 / Очень нужна помощь с триггером

Похожие вопросы:

ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
должен сразу предупредить что делать за тебя никто не будет
теперь по твоим вопросам
  1. чтобы нельзя было кликать скрываешь, даёшь москиты, делаешь видимым
  2. действие проиграть звук и указываешь твою фразу
  3. выбираем всех подходящих(враги,живые) юнитов в радиусе от точки каста и создаём по дамми юниту(юнит без модели, без атаки, с москитами, с нужной способность, время жизни юнита 1 сек) для каждого подходящего юнита приказывая дамми юниту применить нужную способность в подходящего юнита
таким образом каждый дамми юнит применит нужную способность (в твоём случае корни) в 1 подходящего юнита для которого он и был создан а потом исчезнет
  1. система отлова урона
  2. морф юнита либо орбы
всё что я не описал есть в статьях
тебе нужны первые 2 раздела ("Основы" и "Триггеры и объекты")
ответ
В действиях, во вкладке "Герои" находишь "Set Hero level =", потом ставишь "Arithmetic" и делаешь "Hero level - 3".
ответ
Если я правильно помню, можно отследить, становиться ли золото больше определенного значения. Итак:
  • пишем текущее значение в переменную;
  • создаем триггер, который срабатывает, если значение золота становиться больше переменной.
Если триггер сработал:
  • находим разницу;
  • добавляем еще столько же;
  • обновляем переменную;
  • возможно. придется пересоздать триггер.
Также переменную придется обновлять при покупке юнитов, улучшений и прочего, то есть, при трате золота.

23

» WarCraft 3 / Строительство нежити

Похожие вопросы:

ответ
Сделать приказ построить это здание как способность, которая наводится на юнитов.
Ну и когда применили её - например создавать невидимого строителя и приказывать строить на нём.
Старый юнит можно убрать, или делать ему карту путей нулевую, чтобы не мешал строить.
ответ
Все. Я нашел. Оказывается, изменить место расположения иконки можно и без файла "Units/CommandFunc.txt". Просто в способностях можно изменить.

23

» WarCraft 3 / Как стакается способность?

Похожие вопросы:

ответ
Если охото сделать зарыды со счетчиком то тут 2 пути:
  1. Юзать стандартные абилки со счетчиком зарядов, а их только 2 совы охотницы и вспышки орудийного расчета гномов. Увы первая цель декор онли, вторая цель точка онли, на юнита никак, кстати хорошо подходит под кастом блинки, кастуется почти мгновенно, быстрее канала, без всяких рукомаханий.
  2. Использовать N способностей с разными иконками, на которых будет изображен счетчик, изменяя уровень способности или вовсе весть скилл через 'Eneg' (Техника, скилл механика, позволяет изменять поля скиллов) то можно создать скиллы со счетчиком, допустим пока есть заряды у скилла нету кулдауна, скилл последнего заряда имеет кулдаун.
Увы туча ипорта да и найти качественные иконки со счетчиком дело непростое.
ответ
BaHeK, есть вроде
только чукча не читатель
Talgar2, есть 3 варианта
  1. давай абилки которые дают эффект со степенью двойки(например чтобы получить +12 надо дать абилки +8 и +4)
  2. используй баг с итемами
  3. используй мемхак
ответ
Astra, юзай баг с айтемами
не лагает
не требует создания овер дофига абилок (нужен только 1 предмет)
легко удаляется
лучше только мемхак
ответ
Стандартный скилл "Оживший огонь".
ответ
Для начала читаем правила
Затем, новичок самостоятельно сделать эти способности не сможет, если речь идёт о мультиплеере и оптимизированном исполнении.
И тебе лучше обратиться сюда:

23

» WarCraft 3 / Как сделать подобную вещь?

Похожие вопросы:

ответ
  1. тогда сделай при найме героя, чтобы все остальные блокировались для данного игрока.
  2. попробуй тогда сделать условие number of units owned by player matching the codition (matching unit is alive = true) равно 0
ответ
Diazon, все дамики должны быть приатачены к зданию через структуры/хэш/массивы
при смерти просто грузим эти дамики по юниту и удаляем их
лично я бы делал структуру и цеплял её по индексу согласно хэндлу юнита
но так как ты не знаешь таких слов то юзай хэш-таблицы

23

» WarCraft 3 / Редактор Reforged

Похожие вопросы:

ответ
А это что?
(вбил в поиск слово подсветка)
От себя добавлю, для Jass Норм Vscode
Для Lua Vscode или Idea
Всё гуглиться, всё есть

NotePad++ из коробки может более мене Jass подсветить, а если ещё подсветку него добавить, то ещё лучше

23

» WarCraft 3 / Лимит героев и героя

Похожие вопросы:

ответ
Блин, так я пытался раньше сделать через ульту тинкера - превращение в робота или что-то такое. Но суть в том, что способность, которая должна быть у оригинала, остаётся у нового, а старая не добавляется. Делая через триггер добавление способности - она не считается как старая, то есть возможно прокачать её за скилл-поинты.
Ну и когда морф обратно, новая способность удаляется, старая - не добавляется. Через триггеры я пытался делать, но это ооочень сильно глючит и надо очень долго править. Собственно поэтому я и пришёл к мгновенной замене героя на другого, триггерно добавляя нужные способности. т.к у нового героя другие базовые способности, то и получается все без багов. Кроме, собственного, указанного в вопросе.
Более того, пытался делать через пустышку - но не смог сделать отсутствие иконки, а это все портит.
Проблема решена - нашел вопрос со скрытие иконки и ответ на него
ответ
в редакторе триггеров Игрок - Limit Training of Unit Type
ответ
N7 Molot:
SLavyan_NSK:
А без тригеров не как? Как с обычными героями чтобы было.
Ни как, в стандартных картах выставляется лимит героев при установке режима игры:

можно проверить самому, создай новую пустую карту и в триггерах будет стоять эта функция.
ответ
Ограничение на размер кода нет, есть ограничение на кол-во выполняемых операций в приделах одного потока. Все хорошо описано в статье
ответ
была такая проблема, решилась только костылями:
  • при мгновенной смерти большого числа героев часть воскресает немедленно
  • стоят проверки, если герой все же исчез - создать нового, дав ему все необходимые параметры и предметы

23

» WarCraft 3 / Масштабирование эффекта

Похожие вопросы:

ответ
Ответ. Кроме вычислительного предела есть еще лимит создания новых потоков. Оба вида загруженности вызывают характерное падение мощности. Но попытка оценить работу с помощью только одного критерия будет заведомо ошибочной.

23

» WarCraft 3 / Подскажите как сделать способность.

Похожие вопросы:

ответ
Способность сфера замедления + паразит или черные стрелы, но первое не работает на суммонах а последнее на героях...
ответ
Кислотная бомба? Применяешь триггерно после каждой успешной атаки. Или не каждой.
ответ
учить джасс и юзать таймеры
ответ
Блокировать им инвентарь, либо делать для них не юзабельные версии, но с инвентарем проще - 2 уровня инвенаря и все.
ответ
~8gabriel8:
Событие:
Generic unit Умирает
Условие:
(Dying unit) не равно Здание
Level of ability [Пассивка] of (Killing unit) больше 0
Действие:
Игрок - Add gold (тут следовало бы поставить формулу, что количество золота умножается на уровень пассивки или как-то так)

Pain_Greed, пошутил так? Какая-то дичь)

Сделал вот, раз всё равно открыл редактор:

23

» WarCraft 3 / Анимации Атаки

Похожие вопросы:

ответ
тогда лучше всего удалить анимацию, наименее костыльный метод
ответ
8gabriel8:
Вроде ему наоборот надо Spell Throw -> Attack.
с Attack на Spell Throw

zetreisu, открываете модель в mdlvis жмакаете F3, выбераете нужную анимацию, переименовываете, жмакаете Enter и сохраняете модель при выходе.

23

» WarCraft 3 / Как узнать иконку юнита

Похожие вопросы:

ответ
В натуре баг такой? Проверил только что. Улучшение эльфам можно не делать на доспехи. Короче эльфы читеры

23

» WarCraft 3 / Нужна Save\load система

Принятый ответ
Похожие вопросы:

ответ
Steal nerves:
Мне не нужно сохранять героя, в этом то и проблема, так бы я просто скопировал чужую наработку.
Все, мне помог один очень хороший человек.
ответ
Ну что пацаны Datamanager ?
Дам подсказку, смотреть на систему ливов и сыгранный игр, там переменная сама инкрементируется за каждый запуск игры, и сама подгружается, но надо включить локальные файлы и сделать привязку к нику и зашифровать данные, ибо иначе тут всё в открытом виде, можно сбрасывать значение

23

» WarCraft 3 / Видимость спецэффекта

Похожие вопросы:

ответ
Спецэффекты - advanced filter - белая маска, начиная со цвета 0 0 0 и 50% прозрачности и заканчивая таким же.
ответ
в чем редактор вкв3 отличается от редактора ск2 - к сожалению, в вк3-шном эдиторе не удастся отловить все данные.
если ты скажешь, что конкретно делает твой спелл, тебе могут подсказать более легкий вариант исполнения
насчет спецэффектов - утечка решается просто
  1. создаешь точку, если спец на земле. если спец на юните, точка не требуется.
  2. собсно воспроизводишь спец
  3. и сразу его удаляешь. спец удалится тогда, когда доиграет до конца его анимация
  4. кастом скриптом удаляешь точку, если 1 часть 1 пункта актуальна
ответ
Было на вин 10, проверь апдейты винды и драйверов, переставь или откатись - должно помочь.

23

» WarCraft 3 / Фильтры

Похожие вопросы:

ответ
PT153:
Попробуй вообще убрать SetDayNightModels в main.
так не пойдет
8gabriel8:
Потому что несуществующая модель и невидимая вроде по-разному обрабатываются.
одинаково

короче, нашел решение проблемы
проблема в том, что в варкрафте кое какие криворукие программисты забабахали офигенную логику освещения , из-за которых фильтры оверлея берут за основу освещение в точке x=0. y=0. z=0. карты, если там нет освещения значит фильтр думает что и он тоже должен без освещения, решение данной проблемы является расположение модели с источником освещения по координатам в точном центре карты (включая z) и виженом для игрока в данной точке
оригинал темы с решением проблемы, а так же тест карта с моделью освещения по ссылке
ответ
Невозможно, можно наложить 50% прозрачности на серый цвет - но это не сделает их бесцветными, нужно редактировать модели.
ответ
NazarPunk, ну, чтобы рассеивание заклинаний действительно рассеивали их.
Если они сделаны триггерно
И чтоб похищение магии тоже работало корректно
code
library BuffRemover initializer brInit uses CreekKeepersNeptulonShadow, HashId

    private nothing bfActions (){ 
        unit u = GetEnumUnit()
        integer id = GetUnitUserData(u)
        integer bon = LoadInteger(HT, id, BlessingOfNeptulon_hid)
        integer bi
        
        //Благословение Нептулона (рассеивание/окончание)
        if (bon > 0) and (GetUnitAbilityLevel(u, 'NSe1') <= 0) and (GetUnitAbilityLevel(u, 'NSe2') <= 0) and (GetUnitAbilityLevel(u, 'NSe3') <= 0){
            bonStateDel(u, bon)
        }
        
        //Благословение Нептулона (похищение магии)
        if (bon <= 0) and ((GetUnitAbilityLevel(u, 'NSe1') > 0) or (GetUnitAbilityLevel(u, 'NSe2') > 0) or (GetUnitAbilityLevel(u, 'NSe3') > 0)) {
            if GetUnitAbilityLevel(u, 'NSe1') > 0 {bi = 1}
            if GetUnitAbilityLevel(u, 'NSe2') > 0 {bi = 2}
            if GetUnitAbilityLevel(u, 'NSe3') > 0 {bi = 3}
            bonStateAdd(u, bi)
        }
            
        u = null
    }
    
    private nothing brActionsStart(){
        ForGroup(allUnits, function bfActions)
    }
    
    private nothing brInit (){
        TimerStart(CreateTimer(), 0.25, true, function brActionsStart)
    }

endlibrary
    
UPD:
Изменил с помощью фильтров. Получилось так:
code2
library BuffRemover initializer brInit uses CreekKeepersNeptulonShadow, HashId
    
    
    //Фильтры
    private boolean fBoN_end (){
        return (LoadInteger(HT, GetUnitUserData(GetFilterUnit()), BlessingOfNeptulon_hid) > 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe1') <= 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe2') <= 0) and (GetUnitAbilityLevel(GetFilterUnit(), 'NSe3') <= 0)
    }
    
    private boolean fBoN_abd (){
        return (LoadInteger(HT, GetUnitUserData(GetFilterUnit()), BlessingOfNeptulon_hid) <= 0) and ((GetUnitAbilityLevel(GetFilterUnit(), 'NSe1') > 0) or (GetUnitAbilityLevel(GetFilterUnit(), 'NSe2') > 0) or (GetUnitAbilityLevel(GetFilterUnit(), 'NSe3') > 0))
    }
    //Фильтры


    //Функции
    private nothing BoN_end (){ 
        bonStateDel(GetEnumUnit(), LoadInteger(HT, GetUnitUserData(GetEnumUnit()), BlessingOfNeptulon_hid))
    }
    
    private nothing BoN_abd (){ 
        integer bi
        unit u = GetEnumUnit()
        if GetUnitAbilityLevel(u, 'NSe1') > 0 {bi = 1}
        if GetUnitAbilityLevel(u, 'NSe2') > 0 {bi = 2}
        if GetUnitAbilityLevel(u, 'NSe3') > 0 {bi = 3}
        bonStateAdd(u, bi)
        u = null
    }
    //Функции
    
    
    private nothing brActions(){
        group g = CreateGroup()
        
        //Благославление Нептулона (рассеивание/окончание)
        GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, function fBoN_end)
        ForGroup(g, function BoN_end)
        GroupClear(g)
        
        //Благославление Нептулона (похищение магии)
        GroupEnumUnitsInRect(g, bj_mapInitialPlayableArea, function fBoN_abd)
        ForGroup(g, function BoN_abd)
        GroupClear(g)
        
        DestroyGroup(g)
        g = null
    }
    
    private nothing brInit (){
        TimerStart(CreateTimer(), 0.25, true, function brActions)
    }

endlibrary
Так норм или можно еще оптимизировать?
ответ
Эмм как насчет глобальных переменных, т.к в фильтрах ты не создаешь условия а только делаешь проверки, без разрыва потока вейтами, то глобалки доступное и изящное решение.
ответ
github.com/Bergi-bear/TimberSawWar/blob/master/src/DamageSystem.... - все мои отловы урона примерно так выглядят
Мой код не образцовый, но там легко разобраться - github.com/Bergi-bear когда нет обвесок

Не знаю что ты имеешь в виду под фильтрами золота опыта и приказов
для золота и опыта подойдёшь блок github.com/Bergi-bear/SF/blob/master/src/UnitDead.lua - смерти юнита
Для приказов блок SpellCast, но это есть отдельной темой - xgm.guru/p/wc3/ability-cast

23

» WarCraft 3 / Рельеф / Вода / Склон с водой

Похожие вопросы:

ответ
quq_CCCP, пробовал, но что-то не получилось. вставил войска вокруг рудника, и рабы не могли войти в внутрь. Но это не из-за этого.
Все выяснил в чем дело.
нашел ответ
Сначала не понимал, почему вообще не хотело работать это. Везде тыкал, и проверял функцией, и дебагом выводил на экран. Абсолютно везде говорило, что можно передвигаться работникам (даже в воде).
Теперь врубился, почему так было. Нужно было создать блокиратор пути с PATHING_TYPE_PEONHARVESTPATHING. Было два варианта. Либо нарисовать "текстурку + декор" или через "триггеры". Хотя нарисовать текстуру в фотошопе как в статье xgm.guru/p/wc3/pathing-alternate мог, но не знал какого цвета, в статье не показано какого цвета тип PATHING_TYPE_PEONHARVESTPATHING. Или через триггеры см. карту xgm.guru/p/wc3/181384
Хотя создать блокиратор это было полбеды, нужно было понять почему не работает. Работники бегают по участку, то не бегают. Фиг поймешь. Этого можно было бы не заметить (в своей карте пришлось участок визуально рельефом приукрасить, чтобы мог отличать), чтобы понаблюдать. Потом заметил, что вурдалак неся срубленные деревья домой, начал обходить.
Работники когда идут добывать ресурсы, блокиратор их впускает (бывает и не хочет впускать). Но как только они добудут ресурсы, то получат приказ "resumeharvesting" и побегут домой. Тогда встречают в блок. И придется обходить участок. Правильно делают вурдалаки, хотя не всегда. А вот рабы орков и Альянса не правильные какие-то. Они встанут у границы, постоят 2-5 секунд. И походят у границы (туда-сюда), и находят как-будто бы "невидимую" щель, и все по одному входят.
Хотя это работает немного криво (у меня). Работники не хотят обходить участок, это раз. Во-вторых, работников могут впустить. то могут выпустить. Не понятно, что такое.
Насчет светлячков, их даже рассматривать не стал, так как добывают на одном месте.
см. карту PEONHARVESTPATHING

23

» WarCraft 3 / Постоянно вылетает карта

Похожие вопросы:

ответ
В этом архиве ищи свои скиллы, в [скобках] смотри нужный ID.
ответ
Halian Izverg:
Может, все дело в переменных? Попробуй в настройках поставить галочку копировать переменные вместе с триггерами или, если не сработает для твоего глючного редактора, попробуй скопировать переменные вручную перед триггерами.
ответ
Стас Орлов:
Всё, я разобрался кажеться

23

» WarCraft 3 / Анимации

Похожие вопросы:

ответ
Для аттачей необходимо использовать способность Tree of Life upgrade ability (Atol), видна только в JNGP, но при помощи некоторых манипуляций можно и в Reforged увидеть.
Альтернатив не так много, о них уже сказал Extremator.
Для этого берутся либо ауры (тогда в них ещё можно и специфический бафф накладывать на носителя), либо абилки от "когтей атаки" и "кольца защиты" (дающие +атаки и +защиту, в них точно так же как в ауре настраиваются точки крепления и модели)
Использовать способность Shpere (Asph) или аналоги у духов возмездия не рекомендуются.
ответ
У тебя нет файла дорожки анимации для этй звуковой дорожки
А инструмент они не предоставили